package com.baidu.calculatordemo

import android.widget.TextView

/**
 * 判断末尾是不是运算符
 */
fun StringBuilder.isEndWithOperator(): Boolean {
    val str = this.toString()
    return str.endsWith("+") || str.endsWith("-") || str.endsWith("÷") || str.endsWith("×")
}

/**
 * * 替换最后一个字符
 */
fun StringBuilder.replaceLast(str:String){
    this.replace(this.length - 1, this.length, str)
}

/**
 * 是否需要替换最后一个运算符
 * 扩展出来的方法都是实例方法 对象方法
 * 只能用对象来调用
 */
fun StringBuilder.checkIfNeedReplaceLastOperator(str: String): Boolean{
    if(this.isEmpty()) return false

    if(isEndWithOperator()){
        replaceLast(str)
        return true
    }else{
        append(str)
    }
    return false
}

/**
 * 0
 * 00
 * 10+00
 */
fun StringBuilder.checkIfNeedAppendNum(numStr: String):Boolean{
    //不能以00 或 0 开头
    if ((numStr == "00" || numStr == "0") && this.isEmpty()) return false

    //如果最后一个字符是数字才可以输入0 00
    if (isEmpty()){
        append(numStr)
        return true
    }

    if ((numStr == "00" || numStr == "0")) {
        if (this.last() in '0'..'9') {
            append(numStr)
            return true
        }
    }else{
        append(numStr)
        return true
    }

    return false
}















